package gruppe5.dame.client.gui.Lobby;

import javax.swing.JButton;
import javax.swing.JPanel;

/**
 * Panel f&uuml;r die Buttons in der Lobby
 * @author kramerse
 *
 */
public class Buttonpanel extends JPanel {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 3088657351174362462L;

	/**
	 * Button: Neues Spiel hosten
	 */
	private JButton buttonHosten = new JButton("Neues Spiel hosten");
	
	/**
	 * Buton: Spieler in Spiel einladen
	 */
	private JButton buttonEinladen = new JButton("Spieler in Spiel einladen");
	
	/**
	 * Button: Einladung annehmen
	 */
	private JButton buttonAnnehmen = new JButton("Einladung annehmen");
	
	/**
	 * Button: Spiel beitreten
	 */
	private JButton buttonBeitreten = new JButton("Spiel beitreten");
	
	/**
	 * UI Element der Lobby
	 */
	private LobbyGUI lobby;

	/**
	 * Konstruktor
	 * @param lobby
	 */
	public Buttonpanel(LobbyGUI lobby) {
		this.lobby = lobby;
		buttonAnnehmen.addActionListener(new ButtonListener(this));
		buttonBeitreten.addActionListener(new ButtonListener(this));
		buttonEinladen.addActionListener(new ButtonListener(this));
		buttonHosten.addActionListener(new ButtonListener(this));
		buttonBeitreten.setEnabled(false);
		buttonEinladen.setEnabled(false);
		buttonAnnehmen.setEnabled(false);
		this.add(buttonAnnehmen);
		this.add(buttonBeitreten);
		this.add(buttonEinladen);
		this.add(buttonHosten);
	}
	
	/**
	 * Schnittstelle f&uuml;r Action Listener
	 * @param button geklickter Button
	 */
	public void buttonKlicked(JButton button) {
		if (button ==  buttonAnnehmen)
			lobby.returnInvite();
		if (button ==  buttonBeitreten)
			lobby.joinGame();
		if (button ==  buttonEinladen)
			lobby.sendInvite();
		if (button ==  buttonHosten)
			lobby.hostGame();
	}

	/**
	 * Buttons umschalten zwischen User einladen und Spiel beitreten
	 * @param enable
	 */
	public void enableGameList(Boolean enable) {
		buttonBeitreten.setEnabled(enable);
		buttonEinladen.setEnabled(!enable);
	}
	
	public void disableJoinAndInvite()
	{
		buttonBeitreten.setEnabled(false);
		buttonEinladen.setEnabled(false);
	}
	
	/**
	 * enable Invitebutton
	 * @param enable
	 */
	public void enableInviteButton(Boolean enable) {
		buttonAnnehmen.setEnabled(enable);
	}
}